


#ifndef __OLED_H__
#define __OLED_H__

#include "main.h"


//OLEDģʽ����
//0:4�ߴ���ģʽ
//1:����8080ģʽ
#define OLED_MODE 0
#define SIZE 16
#define XLevelL		0x00
#define XLevelH		0x10
#define Max_Column	128
#define Max_Row		64
#define	Brightness	0xFF 
#define X_WIDTH 	128
#define Y_WIDTH 	64	    

#define u8      uint8_t
#define u16     uint16_t
#define u32     uint32_t




#define OLED_SCLK_Clr() HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET)//CLK
#define OLED_SCLK_Set() HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET)

#define OLED_SDIN_Clr() HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET)//DIN
#define OLED_SDIN_Set() HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET)

#define OLED_RST_Clr() HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET)//RES
#define OLED_RST_Set() HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET)

#define OLED_DC_Clr() HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET)//DC
#define OLED_DC_Set() HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET)
 		     
#define OLED_CS_Clr()  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET)//CS
#define OLED_CS_Set()  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET)

#define OLED_DC_H() HAL_GPIO_WritePin( GPIOB ,GPIO_PIN_1,GPIO_PIN_SET)
#define OLED_DC_L() HAL_GPIO_WritePin( GPIOB ,GPIO_PIN_1,GPIO_PIN_RESET)

#define OLED_RESET_H() HAL_GPIO_WritePin( GPIOB ,GPIO_PIN_0,GPIO_PIN_SET)
#define OLED_RESET_L() HAL_GPIO_WritePin( GPIOB ,GPIO_PIN_0,GPIO_PIN_RESET)

#define SPI2_CS_Clr()  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET)//CS
#define SPI2_CS_Set()  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET)


#define OLED_CMD  0	//д����
#define OLED_DATA 1	//д����




//OLED�����ú���
void OLED_WR_Byte(u8 dat,u8 cmd);	    
void OLED_Display_On(void);
void OLED_Display_Off(void);	   							   		    
void OLED_Init(void);
void OLED_Clear(void);
void OLED_DrawPoint(u8 x,u8 y,u8 t);
void OLED_Fill(u8 x1,u8 y1,u8 x2,u8 y2,u8 dot);
void OLED_ShowChar(u8 x,u8 y,u8 chr);
void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size);
void OLED_ShowString(u8 x,u8 y, u8 *p);	 
void OLED_Set_Pos(unsigned char x, unsigned char y);
void OLED_ShowCHinese(u8 x,u8 y,u8 no);
void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[]);
void OLED_SET_POINTS(u8 x,u8 y,u8 z);
void fill_picture(unsigned char fill_Data);
void OLED_DrawPixel(u8 x, u8 y, u8 pixel_on)  ;
void OLED_RefreshPixel (void);
void OLED_WrNum(u8 x,u8 y,u8 num);
void OLED_WrPic(u8 x,u8 y,u8 num);
void OLED_WrPoint(u8 x,u8 y);


void OLED_ShowPIC(unsigned char pic_x, unsigned char pic_y,unsigned char pic_w, unsigned char pic_h,unsigned  char *BMP);
void OLED_ShowD(u8 pic_x,u8 pic_y,uint8_t pic_w,uint8_t pic_h,unsigned char *BMP);
void OLED_ShowBattery(u8 pic_x,u8 pic_y,uint8_t pic_w,uint8_t pic_h,unsigned char *BMP);
void OLED_ShowBTM(u8 pic_x,u8 pic_y,uint8_t pic_w,uint8_t pic_h,unsigned char *BMP);
void OLED_CleanNum(u8 pic_x,u8 pic_y,uint8_t pic_w,uint8_t pic_h);


void UnShowScream(void);
#endif


